﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Data;
using System.Collections;

namespace InterFaceFinance
{
    public interface IJournal 
    {

        int CompanyID
        {
            set;
            get;
        }

        string ReceiptNumber
        {
            set;
            get;
        }
        string Description
        {
            set;
            get;
        }
        int AccType
        {
            set;
            get;
        }
        DateTime JournalDate
        {
            set;
            get;
        }

        int AccPeriod
        {
            set;
            get;
        }

        void addTransaction(double dblAmount, int intDebitCredit, int intChartofAccount);

        void Update();
        object LoadAccounts();
        object LoadJournal(int JournalId);
        void SetJournalUI(int JournalId);

       

    }
    public interface ITransaction
    {
        int ChartofAccount
        {
            set;
            get;
        }
        int DebitCredit
        {
            set;
            get;
        }
        double TransactionAmount
        {
            set;
            get;
        }
        //void Update(int intJournalId);
    }


    public interface IChartofAccounts
    {

        int AccountNumber
        {
            set;
            get;
        }
        string Description
        {
            set;
            get;
        }
        int ChartofAccID
        {
            set;
            get;
        }

        int AccountTypeID
        {
            set;
            get;
        }

        int Company_id
        {
            set;
            get;
        }


        object LoadChartofAccount(int CompanyId);
        bool ISControlChartofAccount(int ChartofAccountID, int CompanyId);

    }


    public interface ITrialBalance
    {
        double getDebitTransaction(int CompanyId);
        double getCreditTransaction(int CompanyId);
        double getDebitTransactionIndividual(int ChartofAccountID, int CompanyId);
        double getCreditTransactionIndividual(int ChartofAccountID, int CompanyId);
        ArrayList getDebitCreditTotalBalance(int CompanyId);
        ArrayList getDebitCreditBalanceIndividual(int ChartofAccountID, int CompanyId);
        
    }



    public interface IProfitLoss
    {
        ArrayList getDebitSide(int ChartofAccID, int CompanyId);
        ArrayList getCreditSide(int ChartofAccID, int CompanyId);
        ArrayList getProfitLoss(int CompanyId);
    }

    public interface IBalanceSheet
    {

        ArrayList getDebitSide(int ChartofAccID, int CompanyId);
        ArrayList getCreditSide(int ChartofAccID, int CompanyId);
        ArrayList getBalanceSheet(int CompanyId);
    }


    public interface ICloseAccount
    {
        int Company_id
        {
            set;
            get;
        }


        DateTime StartDate
        {
            set;
            get;
        }
        DateTime EndDate
        {
            set;
            get;
        }
      

        void CloseAccount(int CompanyId);
    }

}